#ifndef FEWIDGETFACTORY_PRIVATE_H
#define FEWIDGETFACTORY_PRIVATE_H
#include "fecore_global.h"
#include "fewidgetfactory.h"

#include <QMap>

class FeSystemWidgetFactory: public QObject, public FeWidgetFactory
{
	Q_OBJECT
public:
	FeSystemWidgetFactory(QObject *parent=0);
	~FeSystemWidgetFactory();

	virtual QStringList supportedWidgetTypes() const;
	virtual QWidget *createWidget(const QString &type, QWidget *parent);

	void registerWidgetFactory(FeWidgetFactory *);
	void unregisterWidgetFactory(FeWidgetFactory *);

protected:
	virtual QWidget *createBuiltInWidget(const QString &type, QWidget *parent);


private:
	QMap<QString, FeWidgetFactory *> wfs;
};


#endif // FEWIDGETFACTORY_PRIVATE_H